package cliente.pagina.contenido.foro;
import comun.constantes.*;
import cliente.pagina.*;
import cliente.pagina.contenido.*;
import helpers.foro.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ContenidoForo extends VistaContenido {

  private Long idForo;
  private String resultadoOperacion;
  public ContenidoForo()
  {
  }

  public ContenidoForo(Pagina pagina) {
    this.setPagina(pagina);
  }

  public void setPagina(Pagina pagina)
  {
    super.setPagina(pagina);

    //System.out.println("pagina.getParameter(PARAMETROS_PAGINAS.ID_TEXTO):"+pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO));
    if (pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO)!=null)
      this.idForo = new Long(pagina.getParameter(PARAMETROS_PAGINAS.ID_FORO));

    if (pagina.getParameter(PARAMETROS_PAGINAS.RESULTADO_OPERACION)!=null)
      this.resultadoOperacion = pagina.getParameter(PARAMETROS_PAGINAS.RESULTADO_OPERACION);
  }


  /**
   * Retorna el codigo html de la division contenido
   * @return
   */
  public String getHTMLVista()
  {
    HelperForo helperForo=null;
    try {
          helperForo = new HelperForo(this.getPagina());
          String html = "       <h1>"+this.getTitulo()+"</h1>";

          // agregar el html del resultado de la operacion

          // de acuerdo al resultado de laoperacion debo poner un mensaje,
          // si es null quiere decir que la pagina no fue llamada automaticamente desde la pagina que actualiza los datos
          if (this.resultadoOperacion!=null && this.resultadoOperacion.compareTo(TEXTOS.ACTUALIZACION_DE_DATOS_EXITOSA)==0)
              html +=  "       <p class=\"mensajeOk\"><img src=\""+this.getPagina().getPathBotonOk()
              +"\" title=\"_blank\" width=\"12\" height=\"10\"> El  foro con el t&iacute;tulo &quot;"+helperForo.getAsuntoForo(this.idForo)+"&quot; ha sido actualizado correctamente. </p>\n";

      //System.out.println("this.resultadoOpercacion: "+this.resultadoOperacion);

          if (this.resultadoOperacion!=null && this.resultadoOperacion.compareTo(comun.MensajeDeError.ERROR_EN_LA_ACTUALIZACION_DE_DATOS)==0)
            html += "        <p class=\"mensajeError\"><img src=\""+this.getPagina().getPathBotonError()
            +"\" title=\"_blank\" width=\"12\" height=\"10\"><strong>&iexcl;Error!</strong> No se ha podido actualizar el "
            +" foro con el t&iacute;tulo &quot;"+helperForo.getAsuntoForo(this.idForo)+"&quot; </p>\n";

          // si la accion fue eliminar se debe cambiar el mensaje de OK
          if (this.resultadoOperacion!=null && this.resultadoOperacion.compareTo(TEXTOS.ELIMINACION_DE_DATOS_EXITOSA)==0)
              html +=  "       <p class=\"mensajeOk\"><img src=\""+this.getPagina().getPathBotonOk()
              +"\" title=\"_blank\" width=\"12\" height=\"10\"> Los foros "
              +" han sido eliminados correctamente. </p>\n";

          // si la accion fue eliminar se debe cambiar el mensaje de ERROR
          if (this.resultadoOperacion!=null && this.resultadoOperacion.compareTo(comun.MensajeDeError.ERROR_EN_LA_ELIMINACION_DE_DATOS)==0)
              html +=  "       <p class=\"mensajeError\"><img src=\""+this.getPagina().getPathBotonError()
              +"\" title=\"_blank\" width=\"12\" height=\"10\"> Los foros "
              +" NO han sido eliminados correctamente. </p>\n";




          html += "   <p>Bienvenido a los foros "+this.getPagina().getPosFijoNombrePagina()
                +"    <!-- Aca se inserta el nombre de la carrera -->\n"
                +"    <strong>"+helperForo.getNombreAula()+"</strong>."
                +" Haga clic sobre un foro para ver y escribir mensajes.</p>\n"
                +"   <!-- De la siguiente tablas las columnas \"estado\" y \"borrar\" se muestran solo si el usuario tiene los permisos -->\n";

          html += helperForo.generarHtmlTablaAsuntoForo();
          helperForo.commit();
          return html;
    }
    catch (Exception ex) {
      ex.printStackTrace();
      helperForo.rollback();
      return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
    }
  }

  /**
   * Retrona el titulo de la Pagina
   * @return
   */
  public String getTitulo()
  {
    return TITULOS_PAGINAS.FOROS+this.getPagina().getPosFijoNombrePagina();
  }

  // redefino el metodo abstracto de Vista contenido
  protected String getNombrePagina()
  {
    return "foro.jsp";
  }

  // redefino el metodo abstracto de Vista contenido
  public String getTituloLink()
  {
    return "\"Foro\">Foro";
  }

  // redefino el metodo abstracto de Vista contenido
  public String getNombreRecurso()
  {
    return RECURSOS.FORO_OPINION;
  }

// se podria  hacer la estructura comun y despues redefinmir lo particular para cada pagina
// pero por ahora no se justifica
  public String getLink()
  {
    // obtiene el permiso del recurso para el aula actual
    // que esta seteada el el objeto pagina
    String permiso = this.getPagina().obtenerPermisoRecurso(this.getNombreRecurso());
    if (permiso == null)
      return
      "              <span>&nbsp;<img src=\""+this.getPagina().getPathLogoForoOff()+"\" title=\"Foro\" width=\""+CONSTANTES_FINALES.ANCHO_ICONO_MENU+"\" height=\""+CONSTANTES_FINALES.ALTO_ICONO_MENU+"\" border=\"0\" /></span> \n";//&nbsp;&nbsp; 
    if (permiso.compareTo(TIPO_PERMISOS.NINGUNO) == 0)
      return
      "              <span>&nbsp;<img src=\""+this.getPagina().getPathLogoForoOff()+"\" title=\"Foro\" width=\""+CONSTANTES_FINALES.ANCHO_ICONO_MENU+"\" height=\""+CONSTANTES_FINALES.ALTO_ICONO_MENU+"\" border=\"0\" /></span> \n";//&nbsp;&nbsp; 

    return
      "              <a href=\""+utils.UtilsGenerarHtml.agregarParametroUrl(this.getPathNombrePagina(),PARAMETROS_PAGINAS.REGISTRAR_ACCESO,this.getNombreRecurso())+"\"><img src=\""+this.getPagina().getPathLogoForoOn()+"\" title=\"Foro\" width=\""+CONSTANTES_FINALES.ANCHO_ICONO_MENU+"\" height=\""+CONSTANTES_FINALES.ALTO_ICONO_MENU+"\" border=\"0\" /></a> \n";//&nbsp; 
  }
  public void setIdForo(Long idForo) {
    this.idForo = idForo;
  }
  public Long getIdForo() {
    return idForo;
  }
  public void setResultadoOperacion(String resultadoOperacion) {
    this.resultadoOperacion = resultadoOperacion;
  }
  public String getResultadoOperacion() {
    return resultadoOperacion;
  }
  // redefinida para dar la subcarpeta donde se colocarta el archivo
  public String getSubcarpetaRecurso()
  {
    return CARPETAS_ARCHIVOS_RECURSO.FORO;
  }
  public String getTeclaAccesoRapido() {	
		return "";
	}

}